// pages/profile/index.js
const app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    isLoggedIn: false, // 登录状态
    userInfo: {
      avatar: '/assets/img/profile/profile.png',
      nickname: '点击登录',
      level: 0,
      points: 0
    },
    menus: [
      // 图标来源：https://www.iconfont.cn/collections/detail?spm=a313x.7781069.1998910419.dc64b3430&cid=32622
      [
        {
          icon: "/assets/img/profile/account.png",
          txt: "我的账户",
          rightIcon: "arrow-v2"
        },
        {
          icon: "/assets/img/profile/collect.png",
          txt: "收藏",
          rightIcon: "arrow-v2"
        }
      ],
      
      [
        {
          icon: "/assets/img/profile/we.png",
          txt: "意见反馈",
          rightIcon: "arrow-v2"
        },
        {
          icon: "/assets/img/profile/help.png",
          txt: "帮助中心",
          rightIcon: "arrow-v2"
        },
        {
          icon: "/assets/img/profile/profile.png",
          txt: "个人资料",
          rightIcon: "arrow-v2"
        },
        {
          icon: "/assets/img/profile/set.png",
          txt: "设置",
          rightIcon: "arrow-v2"
        }
      ]
    ]
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // 检查登录状态
    this.checkLoginStatus();
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    // 每次页面显示时检查登录状态
    this.checkLoginStatus();
  },

  /**
   * 检查登录状态
   */
  checkLoginStatus: function() {
    const token = wx.getStorageSync('token');
    const userInfo = wx.getStorageSync('userInfo');
    
    if (token && userInfo) {
      // 已登录
      this.setData({
        isLoggedIn: true,
        userInfo: {
          ...this.data.userInfo,
          ...userInfo
        }
      });
    } else {
      // 未登录
      this.setData({
        isLoggedIn: false,
        userInfo: {
          avatar: '/assets/img/profile/profile.png',
          nickname: '点击登录',
          level: 0,
          points: 0
        }
      });
    }
  },

  /**
   * 处理登录点击
   */
  onLoginTap: function() {
    if (this.data.isLoggedIn) {
      // 已登录，跳转到个人资料页
      wx.navigateTo({
        url: '/pages/profile-detail/index'
      });
      return;
    }

    // 微信登录
    wx.login({
      success: (res) => {
        if (res.code) {
          // 由于微信调整了 getUserProfile 接口，这里使用模拟登录
          this.mockLogin();
        } else {
          console.log('登录失败！' + res.errMsg);
          wx.showToast({
            title: '登录失败，请重试',
            icon: 'none'
          });
        }
      },
      fail: (err) => {
        console.log('登录失败', err);
        // 如果微信登录失败，使用模拟登录
        this.mockLogin();
      }
    });
  },

  /**
   * 模拟登录（兼容方案）
   */
  mockLogin: function() {
    wx.showLoading({
      title: '登录中...',
    });

    // 模拟登录过程
    setTimeout(() => {
      // 生成模拟用户数据
      const userData = {
        avatar: '/assets/img/profile/profile.png',
        nickname: '城旅达人',
        level: 15,
        points: 1280,
        gender: 1,
        region: ['广东省', '广州市'],
        birthday: '1995-08-20',
        bio: '热爱旅行和美食的探索者',
        joinTime: '2023-06-15',
        lastActive: '刚刚'
      };

      // 保存登录状态和用户信息
      wx.setStorageSync('token', 'mock_token_' + Date.now());
      wx.setStorageSync('userInfo', userData);

      this.setData({
        isLoggedIn: true,
        userInfo: userData
      });

      wx.hideLoading();
      wx.showToast({
        title: '登录成功',
        icon: 'success',
        duration: 2000
      });
    }, 1500);
  },

  /**
   * 退出登录
   */
  onLogoutTap: function() {
    wx.showModal({
      title: '提示',
      content: '确定要退出登录吗？',
      success: (res) => {
        if (res.confirm) {
          // 清除登录状态
          wx.removeStorageSync('token');
          wx.removeStorageSync('userInfo');
          
          this.setData({
            isLoggedIn: false,
            userInfo: {
              avatar: '/assets/img/profile/profile.png',
              nickname: '点击登录',
              level: 0,
              points: 0
            }
          });

          wx.showToast({
            title: '已退出登录',
            icon: 'success'
          });
        }
      }
    });
  },

  /**
   * 处理菜单项点击
   */
  onMenuTap: function(e) {
    // 检查登录状态
    if (!this.data.isLoggedIn) {
      wx.showToast({
        title: '请先登录',
        icon: 'none'
      });
      return;
    }

    const menu = e.detail;
    
    // 检查menu是否存在
    if (!menu) {
      wx.showToast({
        title: '菜单项数据错误',
        icon: 'none'
      })
      return;
    }
    
    // 根据菜单项跳转到对应页面
    const menuRoutes = {
      "我的账户": "/pages/account/index",
      "收藏": "/pages/collect/index",
      "个人资料": "/pages/profile-detail/index",
      "设置": "/pages/settings/index",
      "帮助中心": "/pages/help-center/index",
      "意见反馈": "/pages/feedback/index"
    };
    
    const route = menuRoutes[menu.txt];
    if (route) {
      wx.navigateTo({
        url: route,
        fail: function(err) {
          console.error('页面跳转失败:', err);
          wx.showToast({
            title: '页面跳转失败',
            icon: 'none'
          });
        }
      });
    } else {
      wx.showToast({
        title: (menu.txt || '该') + '功能开发中',
        icon: 'none'
      });
    }
  },

  /**
   * 处理用户信息点击
   */
  onUserInfoTap: function() {
    if (!this.data.isLoggedIn) {
      this.onLoginTap();
      return;
    }
    
    wx.navigateTo({
      url: '/pages/profile-detail/index',
      fail: function() {
        wx.showToast({
          title: '页面跳转失败',
          icon: 'none'
        });
      }
    });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
});